Media content catalog service

ABSTRACT

Aggregating media content catalog data from a plurality of content providers. The catalog data is merged according to rules and provided to a user on a scheduled basis or on demand. In an embodiment, the merged catalog data represents an incremental update to previously delivered catalog data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/099,914, filed May 3, 2011 (issued on Oct. 8, 2013 as U.S. Pat. No.8,555,317), which is a continuation of U.S. patent application Ser. No.11/461,589, filed Aug. 1, 2006 (issued on Jun. 14, 2011 as U.S. Pat. No.7,962,937), the entire contents of which are incorporated herein byreference.

BACKGROUND

Consumers have been benefiting from additional freedom and control overthe consumption of digital media content. One example is theproliferation of personal video recorder systems (PVRs) that allowconsumers to record television shows for later viewing. The adoption ofPVRs has furthered interest in on-demand, consumer-driven experienceswith content consumption. Examples of existing systems include on-demanddigital cable, internet video streaming services, and peer-to-peerdistribution networks. Other existing systems include music and videostores providing consumers with content that may be purchased andsubsequently viewed on personal video or audio players.

Video catalog services list the programming available through existingvideo services. Such video catalog services are typically developedbased on the music service or video blog service associated therewith.As a result, there are certain design limitations. For instance, theexisting video catalogs are derived from a music or video blog catalogwhich lacks support for concepts particular to the video space such as“channel” and “series”. In addition, there is no support for offlinevideo catalog browsing. Users must be online to browse the video catalogin the existing systems. Further, there is no support for ad-sponsoredfree video downloads. Existing systems also typically rely on a singlesource for catalog content.

SUMMARY

Embodiments of the invention provide a catalog of media items to a user.In an embodiment, the invention aggregates catalog data received from aplurality of content providers. The catalog data is associated with aplurality of media items available from each of the content providers.The aggregation occurs based on rules to create a user catalog in apre-defined catalog format for consumption by a user.

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Other features will be in part apparent and in part pointed outhereinafter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary block diagram illustrating a media contentdownload system.

FIG. 2 is an exemplary flow chart illustrating operation of a videocatalog service.

FIG. 3 is an exemplary block diagram illustrating a video catalogsystem.

FIG. 4 is an exemplary block diagram illustrating the import,interlinking, and merging of metadata from content providers.

FIG. 5 is an exemplary flow chart illustrating receipt of catalogs fromcontent providers.

FIG. 6 is an exemplary flow chart illustrating metadata aggregation.

FIG. 7 is an exemplary flow chart illustrating rule-based cataloginterlinking.

FIG. 8A and FIG. 8B are an exemplary flow chart illustrating asimilarity analysis during rule-based catalog interlinking.

Corresponding reference characters indicate corresponding partsthroughout the drawings.

DETAILED DESCRIPTION

In an embodiment, the invention includes a media content catalog servicesuch as illustrated in FIG. 1. While FIG. 1 illustrates an exemplaryoperating environment for the media content catalog service, aspects ofthe invention are not limited to such an environment. The media contentcatalog service is operable in other operating environments such as avideo game console embodiment, a streaming media system, a traditionalcable television system, an audio file catalog embodiment, a paydownload embodiment, an ad-sponsored free download embodiment, asubscription embodiment, and the like.

Further, although described primarily in the context of video mediafiles, aspects of the invention may be applied to various forms ofdigital media, including video and multimedia files (e.g., movies, movietrailers, television shows, etc.), audio files (e.g., music tracks, newsreports, audio web logs, audio books, speeches, comedy routines, etc.),media broadcasts (e.g., webcasts, podcasts, audiocasts, videocasts,video blogs, blogcasts, etc.), and images.

Aspects of the invention support both online and offline catalogbrowsing with a hybrid catalog request model. Alternatively or inaddition to viewing the catalog online, the hybrid catalog request modelenables catalog data to be downloaded by a client for offline catalogbrowsing, and enables catalog data to be requested on-demand.

In one embodiment, the invention interlinks, merges, aggregates, orotherwise combines catalog data from multiple content providers tocreate an integrated catalog with metadata from the content providersbased on rules. The integrated catalog contributes to a consistent userexperience. The rules are configurable and may be updated withoutrecompiling the aggregation engine. Exemplary rules are shown inAppendix A. While the combination of the catalog data may be referred toas “interlinking” and/or “merging” in particular embodiments, aspects ofthe invention are operable with any process to combine the catalog data.

Referring again to FIG. 1, an exemplary block diagram illustrates amedia content download system. In one embodiment, the media contentdownload system of FIG. 1 is an Internet on-demand video service thatoffers a large catalog of program content that may be downloaded byusers free of charge (e.g., no subscription fee), on a subscriptionbasis, or on a pay-per-download basis. The program content and ads(e.g., content items) are always available. For example, the contentitems may be stored on a computing device local to the user 102 such asmedia service client 104, or archived on a server (e.g., such as ownedby content owners 106). The content items may be organized in ahierarchy of seasons each having series with each series havingepisodes. Revenue is generated by dynamically associating ads with theprogram content at playback time. The ads are inserted into the programcontent at playback time, and as such, may change from viewing toviewing.

The content owners 106 or providers supply program content (e.g., videoand/or audio files) with associated metadata. Exemplary videofundamentals provided by the content owners 106 are shown in Appendix B.The example in Appendix B is merely exemplary. Other embodiments of thevideo fundamentals (e.g., markup language files) are contemplated. Thismetadata also includes the locations in the video at which ads can beinserted (e.g., ad breaks), and which ads provider is responsible forrunning the ad campaigns. One or more ads providers or advertisers 108sell ads against the ad breaks. The ads providers supply ad content 110.The ads providers also run an ad engine and report collection service112 for collecting the reports of which ads have been played.Furthermore, the ads providers make available ad manifest files via anad manifest service 114. The ad manifests may be distributed viadatabase, stream, file, or the like. The ad manifests includeinformation about the current ad campaigns including which ads (orgroups of ads) should be associated with which types of program content.The ad manifests also specify when the advertising may be shown and onwhat devices/formats. The ad manifests further include the definition oftracking events for reporting on the advertising playback (e.g., a videoad was played, thus it can be billed).

Content ingestion servers 116 receive the program content supplied bythe content owners 106 together with the location of the ad manifests.Content delivery networks 118 interface with the media service client104 or other computing device associated with the user 102 to deliverthe content items including program content and advertisements to theuser 102.

The user 102 interfaces with the media service client 104, application,computing device, or the like that provides functionality such asbrowsing, searching, downloading, managing and consuming the contentitems. The media service client 104 downloads catalog data 142 from acatalog service 122 and allows the user 102 to browse it in search ofcontent items. Once an item is selected for download, the correspondingad manifest is retrieved by the media service client 104 and stored. Thead manifest for each item of program content includes the informationfor determining which ads should be downloaded together with the programcontent. The media service client 104 downloads the selected programcontent and associated ads. Downloading includes retrieving the programcontent and associated ads. Downloading may also include receiving theprogram content and associated ads pushed from another computing device(e.g., pushed from a server at regular intervals).

The catalog service 122 includes or has access to a memory area 130. Thememory area 130 stores a plurality of interlinking rules 140. Theinterlinking rules 140 define the processing of input data. Theprocessing may include interlinking, merging, or any other combinationof the catalog data 142. The memory area 130 further stores the catalogdata 142 from the content owners 106. The catalog data 142 is associatedwith a plurality of media items available from each of the contentowners 106. The catalog data 142 includes metadata items describing themedia items. Exemplary metadata items describe aspects of the media itemsuch as category, genre, contributor, ratings, and roles (e.g., actors,actresses).

In one embodiment, one or more computer-readable media or other memoryareas such as memory area 130 associated with the catalog service 122have computer-executable components comprising a rules component 132, aninterface component 134, an aggregation engine component 136, and afront end component 138. The rules component 132 enables configuration,by the user 102, of interlinking rules 140 for combining catalog datasuch as catalog data 142 from the content providers or owners 106. Theinterface component 134 receives, from the content owners 106, thecatalog data 142 including a plurality of metadata items. Each of theplurality of metadata items includes channel metadata and groupmetadata. The channel metadata and group metadata describe a media itemassociated with the metadata item. The aggregation engine component 136combines the catalog data 142 received by the interface component 134 atleast by comparing the channel metadata and group metadata from thereceived catalog data 142 to identify similar media items. The front endcomponent 138 provides the combined catalog data 142 to the user 102. Inan embodiment, the rules component 132 updates the interlinking rules140 based on input from the user 102 without recompiling the aggregationengine component 136.

In an embodiment of the invention, a computer, computing device, orother general purpose computing device is suitable for use as thecatalog service 122 in the figures illustrated and described herein. Thecomputer has one or more processors or processing units and access to amemory area such as memory area 130.

The computer typically has at least some form of computer readablemedia. Computer readable media, which include both volatile andnonvolatile media, removable and non-removable media, may be anyavailable medium that may be accessed by computer. By way of example andnot limitation, computer readable media comprise computer storage mediaand communication media. Computer storage media include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information such as computer readableinstructions, data structures, program modules or other data.Communication media typically embody computer readable instructions,data structures, program modules, or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includeany information delivery media. Those skilled in the art are familiarwith the modulated data signal, which has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. Wired media, such as a wired network or direct-wiredconnection, and wireless media, such as acoustic, RF, infrared, andother wireless media, are examples of communication media. Combinationsof any of the above are also included within the scope of computerreadable media.

In operation, a computing device executes computer-executableinstructions such as those illustrated in the figures to implementaspects of the invention.

Referring next to FIG. 2, an exemplary flow chart illustrates operationof a video catalog service. At 202, the catalog format is definedaccording to a multi-field schema or other catalog format such asdescribed in Appendix C. The catalog format stores metadata in fieldssuch as a virtual channels data field, a video data field, a video groupdata field, a video series data field, a contributor data field, aposter data field, a trailer data field, and a supplementary data field.Each provider may create a virtual channel of content. The virtualchannels data field stores metadata corresponding to a video listdefining one or more video elements and a contributor list defining oneor more contributor elements. Each of the video elements has anidentifier and a title associated therewith. Each of the contributorelements identifies a contributor to the media content. The video groupconcept allows grouping of similar or related media content itemstogether (e.g., by series, actor, movies, or television award). Thecatalog format also includes an action type for each of the receivedcatalogs. The action type includes one or more of the following: add,edit, and delete. Interlinking and/or merging rules are configured at204. The interlinking rules may be configured based on input from theuser or automatically adjusted as a result of previous interlinkingoperations (e.g., a feedback system). The flow loops until catalog datais received from the content providers at 206. The catalog data beingassociated with a plurality of media items available from each of thecontent providers. In an embodiment, receiving the catalog data includesimporting and loading a data feed from each of the content providers.The content providers format their catalog data according to themulti-field schema supported by aspects of the invention. Alternativelyor in addition, a tool (e.g., a web tool) receives the catalog data fromthe content providers as input and outputs data in conformance with theschema.

The received catalog data is aggregated or merged at 208 based on theconfigured interlinking and/or merging rules. In an embodiment,interlinking comprises comparing the metadata items from the catalogdata to identify similar media items. Aspects of the invention areoperable with a plurality of techniques for identifying similar mediaitems, or other forms of metadata matching, including, for example,fuzzy matching techniques. Merging and aggregating the catalog dataincludes parsing the catalog data received from the plurality of contentproviders and assigning the parsed catalog data to one or more fields ofthe multi-field schema.

The user catalog is generated at 210 or formatted from the aggregatedcatalog data based on the pre-defined catalog format for consumption bythe user. In an embodiment, generating the user catalog includespropagating the user catalog to a front end database for access by thenetwork interface. The generated user catalog is provided to the user at212, for example, by a network interface, on a scheduled basis or ondemand.

Aspects of the invention further include transmitting a portion of thegenerated user catalog to the user. The portion of the generated usercatalog may represent an incremental update to a previously transmitteduser catalog. Transmission of the incremental update reduces downloadtime and conserves bandwidth. The incremental updates reflect thechanges made to the catalog since the last download. Such options may bebased on user preferences or system-defined preferences. Exemplarypreferences may direct, for example, the download of a full catalog ifthe user is operating from a personal computer or download incrementalupdates if the user is operating from a mobile device.

In one embodiment, one or more computer-readable media havecomputer-executable instructions for performing the method illustratedin FIG. 2.

Referring next to FIG. 3, an exemplary block diagram illustrates a videocatalog system. In this exemplary embodiment, International StandardAudiovisual Number (ISAN) data import is supported. Metadata isinterlinked and merged at the ISAN identifier level. Aspects of theinvention map the IDs across the content providers.

Referring next to FIG. 4, an exemplary block diagram illustrates theimport, interlinking, and merging of metadata from content providers.Data interlinking merges metadata items based on a set of businessrules. One outcome of this process is to generate a mapping table withmapping between elements.

Referring next to FIG. 5, an exemplary flow chart illustrates receipt ofcatalogs from content providers. Referring next to FIG. 6, an exemplaryflow chart illustrates metadata aggregation.

Referring next to FIG. 7, an exemplary flow chart illustratingrule-based catalog interlinking. Each rule includes one or more of thefollowing parameters: attribute name (e.g., attribute/collection name tomatch), weight (e.g., weight for this rule), and a similarity thresholdscore (e.g., a minimum similarity score threshold for this rule to linkthe metadata item).

Referring next to FIG. 8A and FIG. 8B, an exemplary flow chartillustrating a similarity analysis during rule-based metadatainterlinking. Metadata interlinking is a multi step process. Each rulemay have a different significance to a step; therefore, rules areweighted in one embodiment. To control the quality of the interlinking,each rule has a minimum similarity. If the similarity is less then theminimum, it is not considered. The summation of the weighted similarityof all rules defines the similarity of a step, which then may becompared to the step's minimum similarity to generate a match. Anexemplary summation is shown below in equation (1).

$\begin{matrix}{{SS} = {\sum\limits_{n = 1}^{RC}\;{{RSn}*{RWn}}}} & (1)\end{matrix}$where SS represents the step similarity, RS represents the rulesimilarity, RW represents the rule weight, and RC represents the rulecount.

In one embodiment, the fuzzy matching algorithm works on two tables at atime (e.g., “source” and “destination” tables). Multiple columns of eachtable are considered for the fuzzy look up. Each column may have adifferent significance to the rule, therefore, columns are weighted. Tocontrol the quality of the interlinking, each column has a minimumsimilarity. If the similarity is less then the minimum, it is notconsidered. The summation of the weighted similarity of all columnsdefines the similarity of the rule. An exemplary summation is shownbelow in equation (2)

$\begin{matrix}{{RS} = {\sum\limits_{n = 1}^{CC}\;{{CSn}*{CWn}}}} & (2)\end{matrix}$wherein RS represents the rule similarity, CS represents the columnsimilarity, CW represents the column weight, and CC represents thecolumn count.

Data normalization is performed at the column level. In one embodiment,multiple normalization processes are defined for each column andexecuted in a predefined order.

In “row level interlinking,” the names, birth dates, birth places, etc.of two people may be compared. These attributes are stored in a singlerow because of their one-to-one relationship with the people. A resultrow is built from multiple source rows. In “collection levelinterlinking,” the peoples' works (e.g., songs they've sang, movies theyhave starred in, etc.) are compared. A result collection is built frommultiple source collections. To perform collection level interlinking,each item of the collection is compared as with row level interlinking.Treated as a collection, the collection level similarity may becalculated and compared to a predefined minimum collection similarity.There are many ways of defining collection similarity, as shown inequations (3), (4), and (5).CS=MC/SCC  (3)CS=MC/DCC  (4)CS=MC/(SCC+DCC−MC)  (5)where SCC represents a source collection count, DCC represents adestination collection count, MC represents a match count, and CSrepresents a collection similarity. Alternatively or in addition to acalculated relevant number, collection similarity may also be defined asa fixed number.

In one embodiment, the collection level interlinking is performed afterthe row level interlinking. In an embodiment, the fuzzy matchingalgorithm uses a set of pre-defined working tables as the input andoutput at runtime.

To differentiate columns from different sources in a row merge, or todifferentiate collections from different sources in a collection merge,a priority is assigned to each of column/collection. There are two typesof priority: static (e.g., predefined) and dynamic (e.g., contentbased). A static priority is a predefined, fixed value which does notchange based on the content of the data. A dynamic priority is based onthe content of the data. For example, for a row merge, the priority maybe based on the value of the content or the string length of thecontent. For a collection merge, the priority may be based on thecollection item count and a maximum and/or minimum value of a column.

In an embodiment, the priorities are the same from different sources.There are multiple, different ways of handling such a conflict includingselecting one of the sources, or concatenating or summing the contentfrom the conflicting sources. When performing a row merge, selecting oneof the sources includes selecting one of the source column contents asthe result column content. Concatenating the content comprisesconcatenating the string type data from the source columns for use asthe result column content. Summing the content comprises summing thenumerical data in the source column content as the result columncontent.

When performing a collection merge, selecting one of the sourcesincludes selecting one of the collections as the result collection.Concatenating the content comprises adding the source collections itemsto the result collection.

Aspects of the invention may be implemented as a class of applicationprogramming interface routines. In an embodiment, MergeWorkerBase is thebase abstract class, and different types of merges are implemented asdifferent sub classes thereof. A RowMergeWorker class implements thelogic of row merge. A CollectionMergeWorker class implements the logicof collection merge.

Although described in connection with an exemplary computing systemenvironment, embodiments of the invention are operational with numerousother general purpose or special purpose computing system environmentsor configurations. The computing system environment illustrated in FIG.1 is not intended to suggest any limitation as to the scope of use orfunctionality of any aspect of the invention. Moreover, the computingsystem environment should not be interpreted as having any dependency orrequirement relating to any one or combination of components illustratedin the exemplary operating environment. Examples of well known computingsystems, environments, and/or configurations that may be suitable foruse with aspects of the invention include, but are not limited to,personal computers, server computers, hand-held or laptop devices,multiprocessor systems, microprocessor-based systems, set top boxes, PoPdevices, gaming consoles, programmable consumer electronics, mobiletelephones, network PCs, minicomputers, mainframe computers, distributedcomputing environments that include any of the above systems or devices,and the like.

The following examples further illustrate embodiments of the invention.The figures, description, and examples herein as well as elements notspecifically described herein but within the scope of aspects of theinvention constitute means for aggregating the metadata items from thecatalog data into the merged catalog data.

The order of execution or performance of the operations in embodimentsof the invention illustrated and described herein is not essential,unless otherwise specified. That is, the operations may be performed inany order, unless otherwise specified, and embodiments of the inventionmay include additional or fewer operations than those disclosed herein.For example, it is contemplated that executing or performing aparticular operation before, contemporaneously with, or after anotheroperation is within the scope of aspects of the invention.

Embodiments of the invention may be implemented with computer-executableinstructions. The computer-executable instructions may be organized intoone or more computer-executable components or modules. Aspects of theinvention may be implemented with any number and organization of suchcomponents or modules. For example, aspects of the invention are notlimited to the specific computer-executable instructions or the specificcomponents or modules illustrated in the figures and described herein.Other embodiments of the invention may include differentcomputer-executable instructions or components having more or lessfunctionality than illustrated and described herein.

When introducing elements of aspects of the invention or the embodimentsthereof, the articles “a,” “an,” “the,” and “said” are intended to meanthat there are one or more of the elements. The terms “comprising,”“including,” and “having” are intended to be inclusive and mean thatthere may be additional elements other than the listed elements.

Having described aspects of the invention in detail, it will be apparentthat modifications and variations are possible without departing fromthe scope of aspects of the invention as defined in the appended claims.As various changes could be made in the above constructions, products,and methods without departing from the scope of aspects of theinvention, it is intended that all matter contained in the abovedescription and shown in the accompanying drawings shall be interpretedas illustrative and not in a limiting sense.

APPENDIX A

The following are exemplary business rules for aggregating content frommultiple providers and from a single provider.

Video Aggregation Among Multiple Providers

Partner A and Partner B have Movie A in their inventory, and they bothprovide the cover art and metadata for the movie. Even though the moviecan be purchased/downloaded from the two content providers, aspects ofthe invention provide a consistent experience to users for browsing themovie in the catalog described herein. For example, the cover art andits movie metadata only show up once the initial catalog browsingexperience. When the user decides to purchase or download Movie A, theservice presents the offers from both Partner A and Partner B and allowsthe user to choose from which partner to purchase.

An exemplary configuration for the business rules for aggregating thevideo catalog are shown below.

Interlinking the video from Partner A and Partner B

-   -   If the ISANs are identical, the service in one embodiment of the        invention considers them to be the same video    -   For those videos that do not match based on the above rule, if        the overall similarity score of a video pair is over 90%, the        service considers them to be the same video. The overall        similarity is the sum of similarity score of the individual        rule. Each individual rule is calculated based on the similarity        of an attribute pair*weight. Below are some sample rules:        -   Video Title Interlinking Rule:            -   Similarity score=Video Title Similarity Score*90%                (weight) If the Similarity Score <70%, consider the                similarity score=0        -   Earliest available date Interlinking Rule:            -   Similarity score=(If the month and year of the Earliest                Available Date Match, then 100, otherwise 0)*10%                (weight)    -   For those videos that do not match based on the above rule, if        the overall similarity score of a video pair is over 90%, we        consider them to be the same video as well.        -   Video Title Interlinking Rule:            -   Similarity score=Video Title Similarity Score*50%                (weight) If the Similarity Score <60%, consider, the                similarity score=0        -   Earliest available date Interlinking Rule:            -   Similarity score=(If the year of the Earliest Available                Date Match, then 100, otherwise 0)*20% (weight)        -   Cast List Interlinking Rule            -   Similarity score=(If top 10 cast list match, then 100,                otherwise 0)*20% (weight). Top 10 cast list is sorted by                cast ranking                Merging the video metadata from Partner A and Partner B                to create the best metadata user experience    -   For all the non-interlinked video, copy all the data to the        final publication table    -   For interlinked video matches,        -   Use Partner A video cover art in the final publication            table. If Partner A does not have cover art, use Partner B            cover art        -   Use Partner A description in the final publication table. If            Partner A does not have description, use Partner B            description        -   Use Partner A MPAA rating in the final publication table. If            Partner A does not have MPAA rating, use Partner B MPAA            rating        -   Use Partner B cast list in the final publication table. If            Partner B does not have cast list, use Partner B cast list            Video Group Aggregation Among a Single Provider

Partner A provides two similar law-related television shows. To help theuser find the desired show, the service displays all episodes for bothshows. The business rules to implement these actions are based on thefollowing pattern: the video title starts with “Law” and the video typeis either a series, mini-series, limited series, or movie.

APPENDIX B

Exemplary video fundamentals data are shown below as an extensiblemarkup language (XML) file.

<?xml version=″1.0″ encoding=″UTF-8″?><!--*******************************************************--> <!-- Thisxml defines video fundamentals.         --> <!-- WARNING: The idsdefined in this file will be persisted. --><!--*******************************************************--><VideoFundamentals xmlns:xsi=″http://www.w3.org/2001/XMLSchema-instance″>  <RoleList>   <Role id=″1″ name=″Actor″ />  <Role id=″2″ name=″Director″ />   <Role id=″3″ name=″Guest Star″ />  <Role id=″4″ name=″Host″ />   <Role id=″5″ name=″Producer″ />   <Roleid=″6″ name=″Writer″ />  </RoleList>  <VideoTypeList>   <VideoTypeid=″1″ name=″Movie″/>   <VideoType id=″2″ name=″Limited Series″/>  <VideoType id=″3″ name=″Miniseries″/>   <VideoType id=″4″name=″Serial″/>   <VideoType id=″5″ name=″Series″/>   <VideoType id=″6″name=″Short Film″/>   <VideoType id=″7″ name=″Special″/> </VideoTypeList>  <FlagList>   <Flag id=″1″ name=″CC″ />   <Flag id=″2″name=″Stereo″ />   <Flag id=″3″ name=″Repeat″ />   <Flag id=″4″name=″New″ />   <Flag id=″5″ name=″Live″ />   <Flag id=″6″ name=″Tape″/>   <Flag id=″7″ name=″Delayed″ />   <Flag id=″8″ name=″Subtitled″ />  <Flag id=″9″ name=″Premiere″ />   <Flag id=″10″ name=″Season Premiere″/>   <Flag id=″11″ name=″Series Premiere″ />   <Flag id=″12″name=″Finale″ />   <Flag id=″13″ name=″Season Finale″ />   <Flag id=″14″name=″Series Finale″ />   <Flag id=″15″ name=″Dolby″ />   <Flag id=″16″name=″Dolby Digital″ />   <Flag id=″17″ name=″Joined In Progress″ />  <Flag id=″18″ name=″Cable in the Classroom″ />   <Flag id=″19″name=″Secondary Audio″ />   <Flag id=″20″ name=″Blackout″ />   <Flagid=″21″ name=″3D″ />   <Flag id=″22″ name=″DVS″ />   <Flag id=″23″name=″Mini Series″ />   <Flag id=″24″ name=″Live Sports″ />   <Flagid=″25″ name=″Made for TV″ />   <Flag id=″26″ name=″Standard aspectratio 4:3 (1:33:1)″ />   <Flag id=″27″ name=″HDTV aspect ratio 16:9(1:85:1)″ />   <Flag id=″28″ name=″CinemaScope aspect ratio 2:35:1″ />  <Flag id=″29″ name=″High Definition TV format. Program that isbroadcast in 1080p (1920x1080)″ />   <Flag id=″30″ name=″High DefinitionTV format. Program that is broadcast in 720p (1280x720) or 1080i″ />  <Flag id=″31″ name=″Enhanced Definition TV format program that isbroadcast in 480p using progressive scanning at a 640x480 high pixelresolution″ />   <Flag id=″32″ name=″Standard Definition TV formatprogram that is broadcast in 480i using interlaced scanning at a 640x480high pixel resolution″ />  </FlagList>  <CategoryList>   <CategoryparentId=″0″ id=″0″ name=″Root″ />   <Category parentId=″0″ id=″1″name=″General″ />    <Category parentId=″1″ id=″100″ name=″All″ />   <Category parentId=″1″ id=″101″ name=″Action/Adventure″ />   <Category parentId=″1″ id=″102″ name=″Comedy″ />    <CategoryparentId=″1″ id=″103″ name=″Documentary/Bio″ />    <CategoryparentId=″1″ id=″104″ name=″Drama″ />    <Category parentId=″1″ id=″105″name=″Educational″ />    <Category parentId=″1″ id=″106″name=″Family/Children″ />    <Category parentId=″1″ id=″107″name=″Movies″ />    <Category parentId=″1″ id=″108″ name=″Music″ />   <Category parentId=″1″ id=″109″ name=″News″ />    <CategoryparentId=″1″ id=″110″ name=″Sci-Fi/Fantasy″ />    <Category parentId=″1″id=″111″ name=″Soap″ />    <Category parentId=″1″ id=″112″ name=″Sports″/>    <Category parentId=″1″ id=″113″ name=″Other″ />   <CategoryparentId=″0″ id=″2″ name=″Educational″ />    <Category parentId=″2″id=″200″ name=″All″ />    <Category parentId=″2″ id=″201″ name=″Arts″ />   <Category parentId=″2″ id=″202″ name=″Biography″ />    <CategoryparentId=″2″ id=″203″ name=″Documentary″ />    <Category parentId=″2″id=″204″ name=″How-to″ />    <Category parentId=″2″ id=″205″name=″Science″ />    <Category parentId=″2″ id=″206″ name=″Other″ />  <Category parentId=″0″ id=″3″ name=″Kids″ />    <Category parentId=″3″id=″300″ name=″All″ />    <Category parentId=″3″ id=″301″name=″Adventure″ />    <Category parentId=″3″ id=″302″ name=″Animated″/>    <Category parentId=″3″ id=″303″ name=″Comedy″ />    <CategoryparentId=″3″ id=″304″ name=″Educational″ />    <Category parentId=″3″id=″305″ name=″Special″ />    <Category parentId=″3″ id=″306″name=″Other″ />   <Category parentId=″0″ id=″4″ name=″Lifestyle″ />   <Category parentId=″4″ id=″400″ name=″All″ />    <CategoryparentId=″4″ id=″401″ name=″Adults Only″ />    <Category parentId=″4″id=″402″ name=″Collectibles″ />    <Category parentId=″4″ id=″403″name=″Cooking″ />    <Category parentId=″4″ id=″404″ name=″Exercise″ />   <Category parentId=″4″ id=″405″ name=″Health″ />    <CategoryparentId=″4″ id=″406″ name=″Home and Garden″ />    <CategoryparentId=″4″ id=″407″ name=″Outdoors″ />    <Category parentId=″4″id=″408″ name=″Religious″ />    <Category parentId=″4″ id=″409″name=″Other″ />   <Category parentId=″0″ id=″5″ name=″Movies″ />   <Category parentId=″5″ id=″500″ name=″All″ />    <CategoryparentId=″5″ id=″501″ name=″Action and Adventure″ />    <CategoryparentId=″5″ id=″502″ name=″Adults Only″/>    <Category parentId=″5″id=″503″ name=″Children″ />    <Category parentId=″5″ id=″504″name=″Comedy″ />    <Category parentId=″5″ id=″505″ name=″Drama″ />   <Category parentId=″5″ id=″506″ name=″Fantasy″ />    <CategoryparentId=″5″ id=″507″ name=″Horror″ />    <Category parentId=″5″id=″508″ name=″Musical″ />    <Category parentId=″5″ id=″509″name=″Mystery″ />    <Category parentId=″5″ id=″510″ name=″Romance″ />   <Category parentId=″5″ id=″511″ name=″Science Fiction″ />   <Category parentId=″5″ id=″512″ name=″Suspense″ />    <CategoryparentId=″5″ id=″513″ name=″Western″ />    <Category parentId=″5″id=″514″ name=″Other″ />   <Category parentId=″0″ id=″6″ name=″News″ />   <Category parentId=″6″ id=″600″ name=″All″ />    <CategoryparentId=″6″ id=″601″ name=″Business″ />    <Category parentId=″6″id=″602″ name=″Current Events″ />    <Category parentId=″6″ id=″603″name=″Interview″ />    <Category parentId=″6″ id=″604″ name=″PublicAffairs″ />    <Category parentId=″6″ id=″605″ name=″Sports″ />   <Category parentId=″6″ id=″606″ name=″Weather″ />    <CategoryparentId=″6″ id=″607″ name=″Other″ />   <Category parentId=″0″ id=″7″name=″Series″ />    <Category parentId=″7″ id=″700″ name=″All″ />   <Category parentId=″7″ id=″701″ name=″Action/Adventure″ />   <Category parentId=″7″ id=″702″ name=″Children″ />    <CategoryparentId=″7″ id=″703″ name=″Comedy″ />    <Category parentId=″7″id=″704″ name=″Cooking″ />    <Category parentId=″7″ id=″705″name=″Drama″ />    <Category parentId=″7″ id=″706″ name=″Educational″ />   <Category parentId=″7″ id=″707″ name=″Game Show″ />    <CategoryparentId=″7″ id=″708″ name=″How-to″ />    <Category parentId=″7″id=″709″ name=″Music″ />    <Category parentId=″7″ id=″710″name=″Reality″ />    <Category parentId=″7″ id=″711″ name=″Soap Opera″/>    <Category parentId=″7″ id=″712″ name=″Talk Show″ />    <CategoryparentId=″7″ id=″713″ name=″Travel″ />    <Category parentId=″7″id=″714″ name=″Other″ />   <Category parentId=″0″ id=″8″ name=″Special″/>    <Category parentId=″8″ id=″800″ name=″All″ />    <CategoryparentId=″8″ id=″801″ name=″Awards/Event″ />    <Category parentId=″8″id=″802″ name=″Holiday″ />    <Category parentId=″8″ id=″803″name=″Music″ />    <Category parentId=″8″ id=″804″ name=″Religious″ />   <Category parentId=″8″ id=″805″ name=″Sports″ />    <CategoryparentId=″8″ id=″806″ name=″Other″ />   <Category parentId=″0″ id=″9″name=″Sports″ />    <Category parentId=″9″ id=″900″ name=″All″ />   <Category parentId=″9″ id=″901″ name=″Baseball″ />    <CategoryparentId=″9″ id=″902″ name=″Basketball″ />    <Category parentId=″9″id=″903″ name=″Boxing″ />    <Category parentId=″9″ id=″904″name=″Football″ />    <Category parentId=″9″ id=″905″ name=″Golf″ />   <Category parentId=″9″ id=″906″ name=″Hockey″ />    <CategoryparentId=″9″ id=″907″ name=″Outdoor″ />    <Category parentId=″9″id=″908″ name=″Racing″ />    <Category parentId=″9″ id=″909″name=″Soccer″ />    <Category parentId=″9″ id=″910″ name=″Tennis″ />   <Category parentId=″9″ id=″911″ name=″Other″ />  </CategoryList> <RatingList>   <RatingType id=″0″ name=″Microsoft Rating″>   <RatingValue id=″1″ name=″All″ description=″For every one″ />   <RatingValue id=″2″ name=″6+″ description=″″ />    <RatingValueid=″3″ name=″12+″ description=″″ />    <RatingValue id=″4″ name=″13+″description=″″/>    <RatingValue id=″5″ name=″14+″ description=″″ />   <RatingValue id=″6″ name=″15+″ description=″″ />    <RatingValueid=″7″ name=″17+″ description=″″ />    <RatingValue id=″8″ name=″18+″description=″″ />    <RatingValue id=″9″ name=″19+″ description=″″/>   <RatingValue id=″10″ name=″R″ description=″″ />    <RatingValueid=″11″ name=″X″ description=″″ />   </RatingType>   <RatingTypeid=″100″ name=″MPAA Rating″ countryCode=″us″>    <RatingValue id=″101″name=″G″ description=″″ />    <RatingValue id=″102″ name=″PG″description=″″ />    <RatingValue id=″103″ name=″PG-13″ description=″″/>    <RatingValue id=″104″ name=″R″ description=″″ />    <RatingValueid=″105″ name=″NC-17″ description=″″ />    <RatingValue id=″106″name=″X″ description=″″ />    <RatingValue id=″107″ name=″NR″description=″″ />    <RatingValue id=″108″ name=″AO″ description=″″ />   <Descriptor id=″10001″ name=″Adult Situations″ description=″″ />   <Descriptor id=″10002″ name=″Brief Nudity″ description=″″ />   <Descriptor id=″10003″ name=″Graphic Language″ description=″″ />   <Descriptor id=″10004″ name=″Graphic Violence″ description=″″ />   <Descriptor id=″10005″ name=″Language″ description=″″ />   <Descriptor id=″10006″ name=″Mild Violence″ description=″″ />   <Descriptor id=″10007″ name=″Nudity″ description=″″ />    <Descriptorid=″10008″ name=″Rape″ description=″″ />    <Descriptor id=″10009″name=″Strong Sexual Content″ description=″″ />    <Descriptor id=″10010″name=″Violence″ description=″″ />   </RatingType>   <RatingType id=″200″name=″Star Rating″>    <RatingValue id=″201″ name=″0″ description=″″ />   <RatingValue id=″202″ name=″0H″ description=″″ />    <RatingValueid=″203″ name=″1″ description=″″ />    <RatingValue id=″204″ name=″1H″description=″″ />    <RatingValue id=″205″ name=″2″ description=″″ />   <RatingValue id=″206″ name=″2H″ description=″″ />    <RatingValueid=″207″ name=″3″ description=″″ />    <RatingValue id=″208″ name=″3H″description=″″ />    <RatingValue id=″209″ name=″4″ description=″″ />  </RatingType>   <RatingType id=″300″ name=″US Television   Rating″countryCode=″us″>    <RatingValue id=″301″ name=″TV-G″ description=″″ />   <RatingValue id=″302″ name=″TV-14″ description=″″ />    <RatingValueid=″303″ name=″TV-MA″ description=″″ />    <RatingValue id=″304″name=″TV-Y″ description=″″ />    <RatingValue id=″305″ name=″TV-Y7″description=″″ />   </RatingType>   <RatingType id=″400″ name=″UKTelevision Rating″   countryCode=″uk″>    <RatingValue id=″401″ name=″U″description=″″ />    <RatingValue id=″402″ name=″UC″ description=″″ />   <RatingValue id=″403″ name=″PG″ description=″″ />    <RatingValueid=″404″ name=″12″ description=″″ />    <RatingValue id=″405″ name=″15″description=″″ />    <RatingValue id=″406″ name=″18″ description=″″ />   <RatingValue id=″407″ name=″R18″ description=″″ />   </RatingType>  <RatingType id=″500″ name=″KR Television Rating″   countryCode=″kr″>   <RatingValue id=″501″ name=″ALL″ description=″″ />    <RatingValueid=″502″ name=″SEVEN″ description=″″ />    <RatingValue id=″503″name=″TWELVE″ description=″″ />    <RatingValue id=″504″ name=″FIFTEEN″description=″″ />    <RatingValue id=″505″ name=″NINETEEN″description=″″ />   </RatingType>   <RatingType id=″600″ name=″CanadaTelevision Rating″ countryCode=″ca″>    <RatingValue id=″601″ name=″18+″description=″″ />    <RatingValue id=″602″ name=″14+″ description=″″ />   <RatingValue id=″603″ name=″PG″ description=″″ />    <RatingValueid=″604″ name=″G″ description=″″ />    <RatingValue id=″605″ name=″C8″description=″″ />    <RatingValue id=″606″ name=″C″ description=″″ />  </RatingType>   <RatingType id=″700″ name=″DE Television Rating″  countryCode=″de″>    <RatingValue id=″701″ name=″ALL″ description=″″/>    <RatingValue id=″702″ name=″SIX″ description=″″ />    <RatingValueid=″703″ name=″TWELVE″ description=″″ />    <RatingValue id=″704″name=″SIXTEEN″ description=″″ />    <RatingValue id=″705″ name=″ADULTS″description=″″ />   </RatingType>   <RatingType id=″800″ name=″FRTelevision Rating″   countryCode=″fr″>    <RatingValue id=″801″name=″CAT1″ description=″″ />    <RatingValue id=″802″ name=″CAT2″description=″″ />    <RatingValue id=″803″ name=″CAT3″ description=″″ />   <RatingValue id=″804″ name=″CAT4″ description=″″ />    <RatingValueid=″805″ name=″CAT5″ description=″″ />   </RatingType>  </RatingList></VideoFundamentals>

APPENDIX C

An exemplary video catalog schema is shown below.

Video Catalog Element

Element Name Description Video Catalog Video catalog root element. Thiselement has an attribute schemaVersion and includes Contributors list,Video list, Video Group list, Series list, Virtual channels list, Posterlist, Trailer list, Supplementary file list, and Offer listContributorList Define a list of contributors available. This elementhas no attribute but includes one or many Contributor element(s).Contributor is a person who makes a contribution to the video content.Examples are actor, actresses, writer, producer or director. Pleaserefer to the Contributor element for more details VideoList Define alist of video available. This element has no attribute but includes oneor many Video elements. Video is unique piece of content such as Movie,TV episode, Music Video or User Generated Content VideoGroupList Definea list of Video Groups. This element has no attribute but includes oneor many Video Group elements. SeriesList Define a list of TV Series.This element has no attribute but includes one or many Series elementsVChannelList Define a list of video channels available. This element hasno attribute but includes one or many VChannel element(s). PosterListDefine a list of movie poster image files associates with Video, TVseries, or TV season.. This element has no attribute but includes one ormany Poster Element element(s). TrailerList Define a list of videotrailer files associates with Video, TV series, or TV season. Thiselement has no attribute but includes one or many Trailer element(s).SupplementaryFileList Define a list of supplementary files associateswith Video, TV series, or TV season. This element has no attribute butincludes one or many SupplementaryFile element(s). OfferList Define alist of offers associates with Video, TV series, or TV season. Thiselement has no attribute but includes one or many Offer element(s).Video ElementVideo element defines a unique piece of video content, such as a Movie,a TV episode, a Music Video or a User Generated Content (UGC). Everyunique video content will be a unique Video element. If same content isreleased in different format (such as HD vs. SD or different languages),each format will be a unique “Video Instance” element. However, theywill all belong to the same “Video” parent element.

Element Attribute Name Name Data Type Description Video TVideo Video isunique piece of content. For example, a Movie, a TV episode, a MusicVideo or a User-Generated Content (UGC) id Integer Partner assignedunique identifier for the Video. This ID should uniquely identify aVideo, and should not be changed or recycled to assign to a differentVideo. CRID Char(200) TV-anytime CRID for TV program. ISAN Min: The ISAN(International Standard Char(21) Audiovisual Number) is a voluntary Max:numbering system for the identification Char(33) of audiovisual works.It provides a unique, internationally recognized and permanent referencenumber for each audiovisual work registered in the ISAN system Forexample: 1234-A678-9012-3456-7-B111-2222-8 First 16 digits + 1 checksumdigit are required in an embodiment. The rest of 8 digits + 1 checksumdigit are optional version number title Char(100) Full title for theVideo reducedTitle Char(50) Short title for the Video subTitle Char(100)Sub title for the Video desc Char(4000) Full description for the videoreducedDesc Char(100) Short description for the video videoTypeIDInteger Unique ID assigned by the service for the Video Type.earliestAvailableDate DateTime Date that the video content was availablefor viewing. For TV episode, this is the original air date - date whenthe episode is first aired. For movie, this is the release date when themovie is available for viewing in theater durationSecs Integer Total runtime for the video in seconds productionCompany Char(100) ProductionStudio or Network For TV episode, it is the name of the Network ForMovies, it is the name of the studio licensorID Integer Unique ID forlicensor licensorType Char(100) Movie Studio, TV Studio, or distributorcopyright Char(255) Copyright display text. For example, “Copyright@2004 Provider A” VideoInstanceList TVideoInstanceList A collection ofVideo Instance for the Video. “Video Instance” is a different format orversion or language for a given Video. RoleList TVideoRoleList Acollection of Role for the Video. Role contains the cast and characterinformation for the video CategoryList TVideoCategoryList A list ofcategory that the video is associated with. For TV series or episode,for association with the sub-category under “General” (i.e. in the rangeof 100). For Movies, for association with the sub-category under “Movie”(i.e. in the range of 500). For Music Video, for association with thecategory under “Music Video” (i.e. in the range of 1100). For Promocontent, for association with the sub-category under “General”, “Movies”or “Music Video” (i.e. in the range of 100, 500, or 1100) RatingListTRatingList A list of rating associates with the video. For example,MPAA or editorial rating. FlagList TFlagList A list of attributeassociates with the video. TagList TTagList A collection of Tag. Tagdefines a list of “keyword” associate with the video, and is used tofacilitate search.VideoInstance ElementVideo Instance is a different format or version or language of a Video(i.e. content is the same).

Element Attribute Name Name Data Type Description VideoInstanceTVideoData Contains information of the Video File Instance id IntegerPartner assigned unique identifier of the Video Instance. This ID shoulduniquely identify a Video Instance, and should not be changed orrecycled to assign to a different Video Instance. isDRM Boolean Flagindicate whether the content is DRM or not ISANVersionNumber Char(11)Optional version number of ISAN (Format in xxxx-xxxx-x) spokenLanguageChar(100) Spoken language for the video AudioFormat TAudioFormat AudioFormat information for the Video Instance. VideoFormat TVideoFormatVideo Format information for the Video Instance. VideoFileListTVideoFileList A collection of VideoFile for the VideoInstance.VideoFile is the physical video file for downloading/streaming.Generally, each VideoInstance will have only 1 VideoFile element,however, in cases when the file size for a given VideoInstance is toobig, it might break into multiple small files, result in multipleVideoFile elements AdGroupList TAdGroup A collection of AdGroup element.AdGroup is only used in Ad- sponsored Video content.VideoFile Element

VideoFile element contains information of the physical video file (e.g.missionimpossible.wmv) for downloading/streaming. Generally, eachVideoInstance will have only one VideoFile element, however, in caseswhen the file size for a given VideoInstance is too big (e.g. Titanic HDversion), might break into multiple small files, result in multipleVideoFile element. For details on data relationship, please refer to theVideo Catalog Data Relationship Diagram.

Element Name Attribute Name Data Type Description VideoFile TVideoDataContains information of the physical File video file to download/streamuuid GUID Partner assigned unique identifier of the physical video fileurl Char(10) URL of the physical video file size Big Integer Size (inbytes) of the physical video file durationSecs Integer Run time of thephysical video file (in secs) Hash THash Hash type Char(100) Hash type.By default, it's MD5 value Char(100) Hash value MarkerList TMarkerList Acollection of Marker element. Marker is only used in Ad-sponsored Videocontent.AudioFormat ElementAudioFormat element contains audio format information for the video.

Attribute Element Name Name Data Type Description AudioFormatTAudioFormat Contains audio format info encoding Enum Enum defined bythe service for the Audio Encoding Type. channel String Mono or StereosamplingRate Integer Sampling Rate in Hz CC Boolean Closed caption flagsubtitle String Subtitle language. If there is no subtitle available,set this field to empty string, otherwise, set this to language of thesubtitle bitRate Integer Bit rate for the audioVideoFormat ElementVideoFormat element contains video format information for the video.

Element Attribute Name Name Data Type Description VideoFormatTVideoFormat Contains video format info definition Enum Enum defined bythe service for the definition format. aspectRatio Enum Enum defined bythe service for the Aspect Ratio. resolutionX Integer Resolution-XresolutionY Integer Resolution-Y encoding Enum Enum defined by theservice for the Video Encoding Type. bitRate Integer Bit rate for thevideo frame Integer Frame/secSeries ElementSeries element contains information for a TV series such as season,episode information etc.

Element Data Name Attribute Name Type Description Series TSeries TVSeries data id Integer Partner assigned unique identifier for theSeries. This ID should uniquely identify a Series, and should not bechanged or recycled to assign to a different Series title Char(100)Series title. desc Char(4000) Full description for the SeriesnumberOfSeason Integer Total number of season for the series.IsOrderBySeason Boolean Flag indicating whether the series is order byseason or not. Season TSeason Season data for the TV series id IntegerPartner assigned unique identifier for the TV Series Season. This IDshould uniquely identify a TV Series season, and should not be changedor recycled to assign to a different TV Series Season seasonNumberInteger Season number. title Char(100) Series title for the season.isComplete Boolean Flag indicating whether the season is complete andall episodes are ready to download episodeFrequency Char(100) Frequencyfor new episodes. Examples are Daily, weekly or monthly Episode TEpisodeTV Episode Data. videoID Integer Partner assigned unique ID for the TVEpisode. This ID should maps to the ID defined in the VideoList elementnode title Char(100) Episode Title episodeNumber Integer Episode NumberseasonID Integer Partner assigned unique ID for the Season. This IDshould maps in the ID defined in the Season element node primeTimeFlagBoolean Flag indicating whether the episode is broadcast in PrimeTime orNotVideoGroup ElementVideo Group is for grouping purposes. Below are a few scenario usingVideo Group for grouping

-   -   Group Related Video/Content. For example,        -   Action Movie III collection—use Video group to group Action            Movie III and Action Movie III: Director's Cut into same            bucket    -   Promotion/Bundling        -   Use Video Group to group all Action Movie movies (into            single bucket) and offer special discount price for            customers to download    -   Group award winner content together. For example:        -   Award Winner collection—use Video group to group all movies            that won a particular award    -   Group editorial recommendation together. For example:        -   What's good to watch for 1^(st) date—use Video group to            provide TV/Movies recommendation for 1^(st) date        -   Best 10 Movies for year 2006—use Video group to provide top            Movies recommendation        -   Feature Video—use Video Group to define Feature Video

Element Attribute Data Name Name Type Description VideoGroup TVideoGroupVideo Group is used for grouping purposes. id Integer Partner assignedunique identifier for the Video Group. This ID should uniquely identifya Video Group, and should not be changed or recycled to assign to adifferent Video Group title Char(100) Video Group Title. type Char(100)Type of the video group, explains why the videos are grouped together.For example, “Related Video” VideoList TVideoRef Define a list of Videoavailable in this video group VideoID Integer Partner assigned uniqueidentifier for the video. This ID should maps in the ID defined in theVideoList element node VideoInstanceList TVideoInstanceRef Define a listof video instance available in this video group VideoInstanceID IntegerPartner assigned unique identifier for the video instance. This IDshould maps in the ID defined in the VideoInstance element nodeSeriesList TSeriesRef Define a list of Series available in this videogroup SeriesID Integer Partner assigned unique identifier for theseries. This ID should maps in the ID defined in the Series element nodeTrailer ElementTrailer element enables provider to associate video trailers to a Video(movies or TV episode), a TV series, a TV Series Season, a Video groupor a Video Instance.

Element Attribute Name Name Data Type Description Trailer TTrailer VideoTrailer Data associateElementType Enum Type of element that the videotrailer is associated with. For example, a video trailer can beassociated to a TV Series, TV season or a particular TV Episode ormovie, or a Video Instance etc. associateElementId Integer Element IDthat the video trailer is associated with. The type of ID (whether it isa Series ID, Season ID, Video ID or Video Instance ID) is depended onthe associateElementType. uuid Integer Partner assigned uniqueidentifier of the video trailer file url Char(1024) URL of the videotrailer file size Big Integer Size (in bytes) of the video trailer filedurationSecs Integer Run time of the video trailer file (in secs)ranking Integer Ranking of the video trailer in ascending order, where 1being the first trailer for displaying on the UI AudioFormatTAudioFormat Contains the Audio Format information for the video trailerVideoFormat TVideoFormat contains the Video Format information for thevideo trailerPoster ElementPoster element enables provider to associate poster image files to aVideo (movies or TV episode), a TV series, a Season of a TV series, aVideo group or a Video Instance.

Element Attribute Name Name Data Type Description Poster TPoster Posterimage Data associateElementType Enum Type of element that the posterimage is associated with. A poster image can be associated to a TVSeries, TV season or a particular TV Episode or movie etc.associateElementId Integer Element ID that the poster image isassociated with. The type of ID (whether it is a Series ID, Season ID,Video ID or Video Instance ID) is depended on the AssociateElementType.uuid Integer Partner assigned unique identifier of the poster image fileurl Char(1024) URL of the poster image file size Integer Size (in bytes)of the image file ImageFormat TImageFormat Image Format information forthe poster.ImageFormat ElementImageFormat element contains image format information for poster orsupplementary image file.

Element Attribute Name Name Data Type Description ImageFormatTImageFormat Contains information of the image format info formatTypeEnum Enum assigned by the service for the Encoding Type. width IntegerImage width (in pixels) height Integer Image height (in pixels)Offer ElementOffer element enables provider to associate offer to a Video (movies orTV episode), a TV series, a Season of a TV series, a Video group or aVideo Instance.

Element Attribute Name Name Data Type Description Offer TOffer Containsoffer information offerId Integer Unique ID will be used for requestingfulfillment associateElementType Enum Type of element that the offer isassociated with. For example, an offer can be associated to a TV Series,TV season or a particular TV Episode or movie etc. For example, if thenetwork wants to associate an offer for HD version of episode 3 for aparticular series during a particular Season 1, it can be done bysetting this field to “VideoInstane”, and set the “AssociateElementID”to the Video Instance ID of the series season 1 episode 3.associateElementId Integer Element ID that the offer is associated with.The type of ID (whether it is a Series ID, Season ID, Video ID or VideoInstance ID) is depended on the AssociateElementType. offerType TUsageType of offering. Examples are Download, Streaming or SubscriptionpriceRetail Decimal Retail price for the offer. priceWhole DecimalWholesale price for the offer. This sale price may be the wholesaleprice for a Video, Video Instance, a TV Series, or a TV Season, and itis depended on the associateElementType specific for the offer.startDateTime DateTime GMT date time that the offer becomes availableendDateTime DateTime GMT date time that the offer expires territoryCodeChar(3) Country code that the video is available for download TheterritoryCode is a 3-letter country code as derived from ISO 3166corporateCode Char(100) Content Provider Corporate ID PromotionPromotion Info promotion Char(500) Internal Use only DisplayTextpromotion Char(25) Internal Use only Code promotion Decimal Internal Useonly PRice promotion DateTime Internal Use only StartDateTime promotionDateTime Internal Use only EndDateTime Associate This is only applicableto Season, ElChildElment Series offer in an embodiment. It includes alist of Video Instance element ID that the season or series offer isassociated with. id integer Video Instance Element ID that the offer isassociated with. For example, the HD version of a particular seriesSeason 1 is going to sell for wholesale price $19.99. First, set thewholesale price to “19.99”, then set the associateElementType to“TVSeasonHD”, set the “AssociateElementID” to the Season ID of Season 1,and then add the list of Video Instance IDs for all HD episodes inSeason 1 to the AssociateChildElement nodeSupplementaryFile ElementSupplementaryFile element enables provider to associate anysupplementary files that are non-poster, non-trailer to the Video.Examples are: Screenshots for the video, licensing agreement files,attribution files etc.

Attribute Element Name Name Data Type Description SupplementaryFileTSupplementaryFile SupplementaryFile element enables provider toassociate any supplementary files that are non- poster, non-trailer to aVideo, Video Instance, TV Series, TV Season, Channel etcassociateElementType Enum Type of element that the supplementary file isassociated with. A supplementary file can be associated to a TV Series,TV season or a particular TV Episode or movie etc. associateElementIdInteger Element ID that the supplementary file is associated with. Thetype of ID (whether it is a Series ID, Season ID, Video ID or VideoInstance ID) is depended on the AssociateElementType. uuid IntegerPartner assigned unique identifier for the supplementary file contentEnum Enum defined by the service for the Type supported content type forsupplementary file. fileType Enum Enum defined by the service for thesupported file type for supplementary file. url Char(1024) URL of thesupplementary file size Integer Size (in bytes) of the supplementaryfile duration Integer For supplementary file that is in Secs videoformat, this is run time of the physical video file. For non-videosupplementary file, leave this blank AudioFormat TAudioFormat Forsupplementary file that is in video format, this element contains theAudio Format information for the video. For non-video supplementaryfile, leave out this element VideoFormat TVideoFormat For supplementaryfile that is in video format, this element contains the Video Formatinformation for the video. For non-video supplementary file, leave outthis element ImageFormat TImageFormt For supplementary file that isimage, this element contains the Image Format information. For non-imagesupplementary file, leave out this element Hash THash Hash typeChar(100) Hash type. By default, it's MD5 value Char(100) Hash valueCategory ElementCategory contains categories/genre information for Video content. Youcan associate multiple categories to a Video. For example, for a Videothat is “Romantic Comedy”, you can associate two Category IDs toit—“Romance” and “Comedy”.

Element Attribute Name Name Data Type Description Category TCategoryRefVideo category/genre. Category is defined into 2 level. A video canassociate to first level, second level or both. A video can also beassociated with multiple categories. id Integer Unique Category IDassigned by the service.Role ElementRole contains the cast and character information for the video.

Element Attribute Data Name Name Type Description Role TRole roleIDInteger Unique ID assigned by the service for the Role. contributorIDInteger Partner assigned unique ID for the contributor. This ID shouldmaps in the ID defined in the Contributor element node character CharName of the character (50) ranking Integer Role ranking in ascendingorder, where 1 being the most important Role in the videoFlag ElementFlag contains attribute information associated with the video.

Element Attribute Name Name Data Type Description Flag TFlagRefAttribute associates with the video. ID Integer Unique ID assigned bythe service for the Video Flag.Rating ElementRating contains parental rating information associated with the video.Multiple ratings can be associated to a given video

Element Attribute Data Name Name Type Description Rating TRating Ratingassociates with the video. RatingValueID Integer Rating Value IDassigned by the service. RatingDescriptorID Integer Rating Descriptor IDassigned by the service.Contributor ElementContributor contains the actor/actress/cast info.

Element Attribute Name Name Data Type Description ContributorTContributor Contributor is a human being or animal who makescontribution to the video content. Examples are actor, actresses,writer, producer or director. id Integer Partner assigned uniqueidentifier for the contributor. This ID should uniquely identify acontributor, and should not be changed or recycled to assign to adifferent contributor. fName Char(50) First name of the contributor. Ifthe contributor is an animal, this is the name of the animal mNameChar(50) Middle name of the contributor lName Char(50) Last name of thecontributor prefix Char(50) Prefix for the contributor. suffix Char(50)Suffix for the contributor.VChannel ElementVChannel is the Virtual video channel, it can be a traditional networkchannel or a virtual channel defined by provider.

Element Attribute Name Name Data Type Description VChannel TVChannelVirtual video channel. Virtual video channel can be a traditionalnetwork channel or a virtual channel defined by provider id IntegerPartner assigned unique identifier for the virtual video channel. ThisID should uniquely identify a video channel, and should not be changedor recycled to assign to a different virtual channel. title Char Fulldisplay name for the Virtual (50) Video channel reducedTitle Char Shortdisplay name for the Virtual (20) Video channel desc Char Fulldescription for the Virtual Video (4000) channel reducedDesc Char Shortdescription for the Virtual Video (1000) channel NetworkLogoTNetworkLogo Network Logo Data url Char(1024) URL of the Network Logoimage file size Integer Size (in bytes) of the image file ImageFormatTImageFormat Image Format information for the video. Video TVideoRefDefine a list of videos available in this channel VideoID IntegerPartner assigned unique ID for the video. This ID should maps in the IDdefined in the VideoList element nodeMarker ElementMarker contains position information on inserting ads. It is used inAd-sponsored Video content.

Element Attribute Name Name Data Type Description Marker TMarkerPosition to insert Ads name Char(100) Marker name type Char(100) Markertype startMillis Long Start millisecond durationMillis Long Duration inmillisecondTag ElementTag defines a list of “keyword” associate with the video, and is used tofacilitate search.

Element Attribute Name Name Data Type Description Tag TTag Tag namespaceTag namespaceAdGroup ElementAdGroup contains the ad information for Ad-sponsored Video content.

Element Attribute Name Name Data Type Description AdGroup TAdGroup Adgroup information id Integer Ad Group ID Manifest Char(1024) Ad GroupManifest Url UrlVideo Type

Video Type ID Video Type 1 Movie 2 TV Episode in a Limited Series 3 TVEpisode in a Mini-Series 4 TV Episode in a Serial 5 TV Episode in aSeries 6 Short Film 7 Special 8 Video Podcast 9 Movie Trailer 10 MusicVideo 11 Sporting Event 12 User Generated Content/Video 13 Music VideoSample Clip 14 TV Promo Sample Clip 15 Other Promo Content Clip 16 GamesTrailer 17 Audio PodcastAudio Encoding Type

Enumerated Type Description WMA WMA Dolby Dolby Dolby Digital DolbyDigital DTS DTS (DTS Coherent Acoustics) MP3 MP3Definition Format Type

Enumerated Type Description SD Standard Definition HD High-Def XD XD EDEnhanced DefinitionAspect Ratio Type

Enumerated Type Description 4:3 4:3 (Standard) 16:9 16:9 (High-Def)1:37:1 1:37:1 2:39:1 2:39:1 1:37:1 1:37:1 1:85:1 1:85:1Video Encoding Type

Enumerated Type Description WMV WMV WMV HD WMV HD MPEG-4ASP MPEG-4 ASPVideo (3ivx, DivC, XviD) Digital) H.264 MPEG-4 AVC (H.264, MainConcept,Nero Digital, QuickTime H.264, Sorenson AVC Pro codec, Vanguard SoftwareSolutions, x264) MPEG-1 MPEG-1 Video MPEG-2 MPEG-2 Video ASF ASF WAX WAXRealVideo RealVideoDownload Type

Enumerated Type Description Stream Stream Download Download ProgressiveDL Progressive DLImage Type

Enumerated Type Description JPG JPEG GIF GIF PNG PNG TIF TIFAssociate Element Type

Enumerated Type Description VideoInstance Video Instance Video VideoTVSeason TV Season, includes all episodes in a season, either in HD orSD or XD) TVSeasonHD TV Season, but only includes episodes that are inHD format TVSeasonSD TV Season, but only includes episodes that are inSD format TVSeasonXD TV Season, but only includes episodes that are inXD format TVSeries TV Series, includes all episodes in a series, eitherin HD or SD or XD TVSeriesHD TV Series,, but only includes episodes thatare in HD format TVSeriesSD TV Series,, but only includes episodes thatare in SD format TVSeriesXD TV Series,, but only includes episodes thatare in XD format VChannel Virtual Channel VideoGroup Video GroupContributor ContributorSupplementary Content Type

Enumerated Type Description ScreenShot Screen Shot AttributionAttribution Licensing LicensingSupplementary File Type

Enumerated Type Description ImageFile ImageFile VideoFile VideoFile HTMLHTML XML XMLCategory ID

Main Category SubCategory ID Name ID Name 100 General 101 All 102Action/Adventure 103 Comedy 104 Documentary/Bio 105 Drama 106Educational 107 Family/Children 108 Movies 109 Music 110 News 111Sci-Fi/Fantasy 112 Soap 113 Sports 114 Other 200 Educational 201 All 202Arts 203 Biography 204 Documentary 205 How-to 206 Science 207 Other 300Kids 301 All 302 Adventure 303 Animated 304 Comedy 305 Educational 306Special 307 Other 400 Lifestyle 401 All 403 Collectibles 404 Cooking 405Exercise 406 Health 407 Home and Garden 408 Outdoors 409 Religious 410Other 500 Movies 501 All 502 Action 504 Adventure 505Avant-garde/Experimental 506 Business 507 Children's/Family 508 Comedy509 Comedy Drama 510 Crime 511 Culture & Society 512 Dance 513 Drama 514Education 515 Epic 516 Family & Personal Relationships 517 Fantasy 518Film, TV & Radio 519 Health & Fitness 520 Historical Film 521 History522 Horror 523 Language & Literature 524 Leisure Arts 525 Music 526Musical 527 Mystery 528 Nature 529 Romance 530 Science & Technology 531Science Fiction 532 Spirituality & Philosophy 533 Sports & Recreation534 Spy Film 535 Theater 536 Thriller 537 Travel 538 Visual Arts 539 War540 Western 600 News 601 All 602 Business 603 Current Events 604Interview 605 Public Affairs 606 Sports 607 Weather 608 Other 700 Series701 All 702 Action/Adventure 703 Children 704 Comedy 705 Cooking 706Drama 707 Educational 708 Game Show 709 How-to 710 Music 711 Reality 712Soap Opera 713 Talk Show 714 Travel 715 Other 800 Special 801 All 802Awards/Event 803 Holiday 804 Music 805 Religious 806 Sports 807 Other900 Sports 901 All 902 Baseball 903 Basketball 904 Boxing 905 Football906 Golf 907 Hockey 908 Outdoor 909 Racing 910 Soccer 911 Tennis 912Other 1000 Clips 1001 UGC 1002 Promo Content—TV 1003 Promo Content—Movie1004 Promo Content 1100 Music Video 1101 Blues 1102 Jazz 1103 Latin 1104Metal 1105 New Age 1106 Oldies 1107 Other 1108 Pop 1109 Rap &amp;Hip-Hop 1110 Reggae 1111 Religious 1112 Rock 1113 Soul and RB 1114Soundtracks 1115 Spoken 1116 Vocal 1117 World 1118 Children 1119Classical 1120 Comedy 1121 Country 1122 Dance 1123 Easy Listening 1124Electronica 1125 Folk 1126 HolidayRole ID

Role ID Role Name 1 Actor 2 Director 3 Guest Star 4 Host 5 Producer 6Writer 7 Arranger 8 Artist 9 Composer 10 Conductor 11 ContributingArtist 12 Director of Photography 13 Editor 14 Engineer 15Ensemble/Orchestra 16 Executive Producer 17 Guest Artist 18 Hair andMake Up 19 Mixer 20 Performer 21 Post Production Effects 22 ProductionDesigner 23 Soloist 24 Wardrobe StylistFlag ID

Flag ID Video Flag Attribute 1 Premiere 2 Season Premiere 3 SeriesPremiere 4 Finale 5 Season Finale 6 Series FinaleRating Type ID

Rating Type Rating ID Rating Type 100 MPAA Rating Rating Rating ID rankvalue 101 1 G 102 2 PG 103 3 PG-13 104 4 R 105 5 NC-17 106 6 X 107 7 NR108 8 AO Descriptor Rating ID name 10001 Adult Situations 10002 BriefNudity 10003 Graphic Language 10004 Graphic Violence 10005 Language10006 Mild Violence 10007 Nudity 10008 Rape 10009 Strong Sexual Content10010 Violence 200 Star Rating Rating Rating ID rank value 201 1 0 202 20H 203 3 1 204 4 1H 205 5 2 206 6 2H 207 7 3 208 8 3H 209 9 4 300 USTelevision Rating Rating Rating ID rank value 301 1 TV-G 302 2 TV-14 3033 TV-MA 304 4 TV-Y 305 5 TV-Y7 400 UK Television Rating Rating Rating IDrank value 401 1 U 402 2 UC 403 3 PG 404 4 12 405 5 15 406 5 18 407 6R18 500 KR Television Rating Rating Rating ID rank value 501 1 ALL 502 2SEVEN 503 3 TWELVE 504 4 FIFTEEN 505 5 NINETEEN 600 Canada TelevisionRating Rating Rating ID rank value 601 1 18+ 602 2 14+ 603 3 PG 604 4 G605 5 C8 606 6 C 700 DE Television Rating Rating Rating ID rank value701 1 ALL 702 2 SIX 703 3 TWELVE 704 4 SIXTEEN 705 5 ADULTS 800 FRTelevision Rating Rating Rating ID rank value 801 1 CAT1 802 2 CAT2 8033 CAT3 804 4 CAT4 805 5 CAT5 900 Explicit Language Rating Rating ID rankvalue 901 1 Restrict 902 2 Clean

What is claimed is:
 1. A computerized method executable by a processorfor providing a catalog of media files, said method comprising:receiving a plurality of source collections from a plurality of contentproviders, each of said source collections comprising a plurality ofmedia files and metadata associated therewith available from at leastone corresponding content provider, wherein a subset of the media filesfrom different content providers has similar content, and wherein asubset of the metadata from the different content providers hasnon-identical content; combining the received source collections andrendering a destination collection based on an interlinking rule betweenelements received from the plurality of source collections; receiving aselection of one of the media files of the subset of media files havingsimilar content and; updating the interlinking rule based on thereceived selection; wherein combined metadata is generated based on theinterlinking rule, said metadata mapping the combined source collectionelements received from the plurality of source collections; and whereina user catalog is generated from the destination collection in apre-defined catalog format for consumption by a user via a clientcomputer, said user catalog including the selected media file andfurther including, associated with the selected media file, the combinedmetadata.
 2. The computerized method of claim 1, wherein receiving thesource collections comprises importing and loading a data feed from eachof the plurality of content providers.
 3. The computerized method ofclaim 1, further comprising defining the catalog format according to amulti-field schema and wherein combining the received source collectionsincludes parsing the catalog data received from the plurality of contentproviders and assigning the parsed catalog data to one or more fields ofthe multi-field schema.
 4. The computerized method of claim 1, whereinthe catalog format comprises an action type for catalog data receivedfrom each of the content providers, and wherein the action typecomprises one or more of the following: add, edit, and delete.
 5. Thecomputerized method of claim 1, wherein the user catalog is generated bypropagating the user catalog to a front end database for access by thenetwork interface.
 6. The computerized method of claim 1, wherein theprocessor is further configured for periodically updating the usercatalog based on at least a portion of the generated user catalog. 7.The computerized method of claim 1, wherein one or morecomputer-readable storage media have computer executable instructionsfor performing the method recited in claim
 1. 8. A computerized methodexecutable by a processor of a catalog service for providing a catalogof media files, said method comprising: receiving a plurality of sourcecollections from a plurality of content providers, each of said sourcecollections comprising a plurality of media files and metadataassociated therewith available from at least one corresponding contentprovider, wherein a subset of the media files from different contentproviders has similar content, and wherein a subset of the metadata fromthe different content providers has non-identical content; collectionlevel interlinking the plurality of received source collections into adestination collection based on one or more of a source collection countof the plurality of received source collections and a specifieddestination collection count of the destination collection; generatingmetadata comprising newly combined metadata to reference the collectionlevel interlinked source collection, said newly combined metadatacomprising merged metadata items and mapping the interlinked sourcecollections, and wherein the newly combined metadata is generated basedon evaluating the metadata of each file of the plurality of media filesin the collection level interlinked plurality of received sourcecollections; generating a user catalog from the destination collectionin a pre-defined catalog format for consumption by a user via a clientcomputer, said user catalog including the combined metadata of theinterlinked source collections; and transmitting at least a portion ofthe generated user catalog to the client computer.
 9. The computerizedmethod of claim 8, wherein receiving the source collections comprisesimporting and loading a data feed from each of the plurality of contentproviders.
 10. The computerized method of claim 8, further comprisingdefining the catalog format according to a multi-field schema andwherein the collection level interlinking includes parsing the catalogdata received from the plurality of content providers and assigning theparsed catalog data to one or more fields of the multi-field schema. 11.The computerized method of claim 8, wherein the catalog format comprisesan action type for catalog data received from each of the contentproviders, and wherein the action type comprises one or more of thefollowing: add, edit, and delete.
 12. The computerized method of claim8, wherein the processor is further configured for providing a networkinterface for delivering the generated user catalog to the clientcomputer.
 13. The computerized method of claim 12, wherein generatingthe user catalog comprises propagating the user catalog to a front enddatabase for access by the network interface.
 14. The computerizedmethod of claim 8, wherein the processor is further configured forperiodically updating the user catalog by transmitting a portion of thegenerated user catalog to the client computer.
 15. The computerizedmethod of claim 8, wherein one or more computer-readable storage mediahave computer executable instructions for performing the method recitedin claim
 8. 16. A computerized method executable by a processor forselecting from a received catalog of media files, said methodcomprising: receiving a display of media files as a combined destinationcollection, said combined destination collection representing aplurality of source collections from a plurality of content providers,each of said source collections comprising a plurality of media filesand metadata associated therewith available from at least onecorresponding content provider, said combined destination collectionfurther comprising combined metadata, said metadata mapping theplurality of media files received from the plurality of sourcecollections; selecting, from the received display, at least one of themedia files from a subset of media files having similar content; andreceiving a transmission of at least a portion of a user catalog, saiduser catalog being generated from the destination collection based on anupdated interlinking rule defined by the selecting from the receiveddisplay, said user catalog being generated in a pre-defined catalogformat for consumption by a user via a client computer, said usercatalog including the selected at least one of the media files andfurther including the metadata comprising newly combined metadataassociated therewith, said newly combined metadata comprising mergedmetadata items and mapping the interlinked source collections to theuser catalog using the merged metadata items, and wherein the newlycombined metadata is generated based on evaluating the metadata of eachfile of the plurality of media files in the combined plurality ofreceived source collections.
 17. The computerized method of claim 16,further comprising receiving rendered content in response to a userselection from the user catalog.
 18. The computerized method of claim17, further comprising receiving a catalog format defined according to amulti-field schema.
 19. The computerized method of claim 18, wherein thereceived catalog format comprises an action type for catalog datareceived from each of the content providers, and wherein the action typecomprises one or more of the following: add, edit, and delete.